<?php
/**
 * Created by PhpStorm.
 * User: dapeng
 * Date: 2018/4/19
 * Time: 下午6:30
 */

namespace app\home\controller;

use think\Controller;
use app\home\model\Users as MUsers;
use think\Db;
use think\Session;
use think\Loader;
use think\Validate;
class Users extends Controller
{
    /**
     * 进入登陆页面
     */
    function index()
    {
        if( !session('?mobile')){
            return view("login");
        }else{
            $tel=Session::get('mobile');
            $this->assign('tel',$tel);
            return view("mine");
        }

    }

    function login(){
        return view("login");
    }
    /**
     * 登陆的方法
     */
    function users()
    {
        //获取请求的数据
        $data = [
            'mobile' => $_POST['mobile'],
            'password' => $_POST['password']
        ];
        $rule = 'app\validate\Userlogin';
        //使用控制层自带的验证类
        $check = $this->validate($data, $rule);
        if (true !== $check) {
            //返回错误信息
            return ['status' => -1, 'message' => $check];
        } else {
            //使用模型层的对象进行数据的查询，使用闭包的方式
            $res = MUsers::get(function ($query) use ($data) {
                $query->where('mobile', $data['mobile'])->where('password', $data['password']);
            });
            if ($res == null) {
                return ['status' => 0, 'message' => "手机号或密码不正确，请检查"];
            } else {
                //把查到的用户id及用户名用session存储起来，留待以后使用
                Session('user_id', $res['id']);
                Session('user_name', $res['name']);
                session('mobile',$data['mobile']);
                session('password',$data['password']);
                return ['status' => 1];
            }
        }
    }
    //渲染注册页面
    function usersreg()
    {
        return view("regist");
    }
    /**
     * 注册的方法
     */
    function reg()
    {
        //获取请求的数据
        $data = [
            'mobile' => $_POST['mobile'],
            'code' => $_POST['code'],
            'password' => $_POST['password'],
        ];
        if(session('code')!==$data['code']){
            return ['status' => -2, 'message' => "验证码错误"];
        }
        $xhr=[
            'mobile' =>$data['mobile'], //$_POST['mobile'],
            'password' => $data['password'],//$_POST['password'],
        ];
        $rule = 'app\validate\Userreg';
        //使用控制层自带的验证类
        $check = $this->validate($data, $rule);
        if (true !== $check) {
            //返回错误信息
            return ['status' => -1, 'message' => $check];
        } else {
            //true 使用模型层的对象进行数据的添加
            if(MUsers::create($xhr)){
//                Session::set('mobile', $data['mobile']);
//                Session::set('password', $data['password']);
                return ['status'=>1,'message'=>"恭喜,注册成功,是否跳转到登录页面?"];
            }else{
                return ['status'=>0,'message'=>"注册失败,请检查"];
            }
        }

    }
   //个人的投递历史
    function history()
    {
        $res=[];
        $hist=Db::name("liewu_historylist")->where("user_id",Session::get("user_id"))->select();
        foreach ($hist as $key => $value) {
            array_push($res,Db::name("liewu_hiring")->where("id",$value['zhaop_id'])->select());
        }
        $this->assign("res",$res);
        return view("history");
    }
    //个人模块用户推出登录，销毁seesion，显示登录界面
    function tuichu(){
        session("mobile",null);
        session("user_id",null);
        return view("login");
    }

    public function sms()
    {
        if(request()->isPost()){//和TP3中略有不同IS_POST等方法弃用

            $number = input('number');//input助手函数   获取输入数据 支持默认值和过滤

            Loader::import('alimsg.api_demo.SmsDemo',EXTEND_PATH);//对应extend目录，路径，如果你对SmsDemo类添加了命名空间可在上面 use 后在此处直接实例化

            $code = $this->random();


            //得到信息文件并执行.实例化阿里短信类
            $msg = new \SmsDemo('LTAIGs6RxDx2sdpr','eKtgIADyY9yJJQUmtVIRMAv4bBYakx');//注意类名前面的  \ 此处写的就是Access key id 和Access key secret

            //此配置在sdk包中有相关例子
            $res = $msg->sendSms(
            //短信签名名称
                "徐昭跃",//此处填写你在阿里云平台配置的短信签名名称（第二步有说明）
                //短信模板code
                "SMS_136035063",//此处填写你在阿里云平台配置的短信模板code（第二步有说明）
                //短信接收者的手机号码
                " $number",
                //模板信息
                Array(
                    'code' => $code,//随机变化的
                )
            );
            dump($res);
            die;
            $response = array($res);

        }
//        return $this->fetch('index');
    }

    //生成所发送的验证码并返回
    public function random()
    {
        $length = 6;
        $char = '0123456789';
        $code = '';
        while(strlen($code) < $length){
            //截取字符串长度
            $code .= substr($char,(mt_rand()%strlen($char)),1);
        }
        session('code',$code);
        return $code;
    }


    function changepwd2(){
        $data=[
            'tel'=>$_POST['phone'],
        ];
        $rule = [
            'tel|手机号'=>'require|mobile',
        ];
        //使用控制层自带的验证类
        $check = $this->validate($data, $rule);

        if(true!==$check){
            $res=$check;
            return['status'=>-1,'message'=>$check];

        }
        else{
            $number = $_REQUEST['phone'];//input助手函数   获取输入数据 支持默认值和过滤

            Loader::import('alimsg.api_demo.SmsDemo',EXTEND_PATH);//对应extend目录，路径，如果你对SmsDemo类添加了命名空间可在上面 use 后在此处直接实例化

            $code = $this->random();


            //得到信息文件并执行.实例化阿里短信类
            $msg = new \SmsDemo('LTAIGs6RxDx2sdpr','eKtgIADyY9yJJQUmtVIRMAv4bBYakx');//注意类名前面的  \ 此处写的就是Access key id 和Access key secret

            //此配置在sdk包中有相关例子
            $res = $msg->sendSms(
            //短信签名名称
                "徐昭跃",//此处填写你在阿里云平台配置的短信签名名称（第二步有说明）
                //短信模板code
                "SMS_136035063",//此处填写你在阿里云平台配置的短信模板code（第二步有说明）
                //短信接收者的手机号码
                " $number",
                //模板信息
                Array(
                    'code' => $code,//随机变化的
                )
            );

            $response = array($res);
            return['status'=>1,'message'=>'发送成功'];

        }
    }
    function changepwd(){
        return view("changepwd");
    }
    function changepwd3(){

        //拿到之前生成验证码存的数
        $code=Session::get('code');
        if($code!=$_POST['tel']){
            return['status'=>-1,'message'=>"获取验证码失败！"];
        }
        $data=[
            'phone'=>$_POST['phone'],
        ];
        $rule = [
            'phone|手机号'=>'require|mobile',
        ];
        //使用控制层自带的验证类
        $check = $this->validate($data, $rule);
        if(true!==$check){
            $res=$check;
            return['status'=>-1,'message'=>$check];
        }
        else{
            $data1=[
                'password'=>$_POST['pwd']
            ];
            $result=db('liewu_user')
                ->where('mobile',$_POST['phone'])
                ->update($data1);

            if($result){
                return['status'=>1,'message'=>'修改成功！'];
            }
        }
    }
}